CS551, Fall 2003: Course Outline

Class Overview

This is a first-year graduate class in computer networking. As such, this class will give you a deeper understanding of networking technologies from the routing-layer on, and expose you to classic and contemporary literature on the subject. The class also has a hands-on simulation project which will give you an insight into what it takes to build real networking sub-systems.

The class has the following components:

Homeworks (10%)
I will assign between 3 and 4 homeworks. Each homework will contain an assortment of problems from the textbook, and possibly one ns simulation exercise designed to illustrate some topic taught in class.

Programming Assignments (30%)
You will be expected to complete two programming projects. They will be described in more detail later in the semester. The first will be assigned in approximately the third week of class. Both projects will involve network programming with sockets. Both projects will also involve emulating some network subsystem discussed in class. You will build these systems using C++ on the University's Unix machines. The projects assume only a basic understanding of C++ and Unix; if, however, you lack this background, don't take the class.

Midterm Exam (25%)
There will be one in-class midterm. It will be based on course readings and class discussions. It will be closed book. You may, however, bring one 8.5x11 sheet of paper with anything written on it.

Final Exam (35%)
The final exam will emphasize the second half of the term. It will be closed book. You may, however, bring one 8.5x11 sheet of paper with anything written on it.

Student Responsibilities

By enrolling this class, here is what you're agreeing to:

Academic Integrity Policy

All homeworks must be solved and written independently, or you will be penalized for cheating. You should be thoroughly familiar with the Academic Integrity Guide and the Guide to Avoiding Plagiarism.

In this course we encourage students to study together. This includes discussing general strategies to be used on individual assignments. However, all work submitted for the class is to be done individually.

Some examples of what is not allowed by the conduct code: copying all or part of someone else's work (by hand or by looking at others' files, either secretly or if shown), and submitting it as your own; giving another student in the class a copy of your assignment solution; consulting with another student during an exam. If you have questions about what is allowed, please discuss it with the instructor.

Students who violate University standards of academic integrity are subject to disciplinary sanctions, including failure in the course and suspension from the University. Since dishonesty in any form harms the individual, other students, and the University, policies on academic integrity will be strictly enforced. We expect you to familiarize yourself with the Academic Integrity guidelines found in the current SCampus.

Violations of the Student Conduct Code will be filed with the Office of Student Conduct, and appropriate sanctions will be given.

Class Information

We have a class account on the USC machines. This is where you will submit your programming assignments.

You should re-visit the class web page on a regular basis and check out any updates.

We will also set up a mailing list for announcements: cs551-announce@enl.usc.edu.

Grading

Accessing the Papers and Lectures

For various reasons having to do with preserving intellectual property, access to papers and lectures is restricted to machines within USC and ISI.

Many of you have asked, or will want, access to these materials from your home or work computers. I cannot individually enable access to the site.

To access these resources from a computer situated outside USC, you can set up a VPN to USC.

If your computer runs Linux, there may be a simpler solution. ssh into one of the USC machines using the -D option (check out the man page). Then, you will need to set your browser to use the port number provided to the -D option of ssh as a SOCKS v4 proxy. Most modern browsers support this. You should also be able to use this trick with Windows and Mac ssh clients, although I haven't tried this myself.



Ramesh Govindan
ramesh@usc.edu
11 September 2003